package study.proxy;  
  
import java.lang.reflect.InvocationHandler;  
import java.lang.reflect.Method;  
  
public class MyInterceptor implements InvocationHandler {  
  
    private Object target;  
    // 这不是必须的接口方法，但是却是编程必须的  
    public void setTarget(Object target) {  
        this.target = target;  
    }  
  
    public Object invoke(Object proxy, Method method, Object[] args)  
            throws Throwable {  
        // proxy 通过 可以转型，但是转型后的Object依然不能用  
        // (RealObject)proxy  
        System.out.println("Before");  
//        Object result = method.invoke(target, args);  
        Object result = method.invoke(target, args);  
        System.out.println("After");  
        return result;  
    }  
  
} 